import { adminLogin } from '../api/index';
import { ElMessage } from 'element-plus';

// 全局权限管理
const permissionUtils = {
  // 确保有管理员权限
  async ensureAdminPermission() {
    try {
      // 检查是否已经有token
      const token = localStorage.getItem('token');
      if (token) {
        // 已有token，直接返回成功
        return true;
      }
      
      // 没有token，进行管理员登录
      console.log('正在获取管理员权限...');
      const loginResult = await adminLogin();
      
      if (loginResult && loginResult.access_token) {
        // 将token存入localStorage，确保持久化存储
        localStorage.setItem('token', loginResult.access_token);
        // 添加标记表示已获取过权限，避免重复获取
        localStorage.setItem('admin_permission_initialized', 'true');
        console.log('管理员权限获取成功');
        return true;
      } else {
        console.error('管理员权限获取失败');
        ElMessage({
          message: '系统权限获取失败，部分功能可能无法使用',
          type: 'error',
          duration: 3000
        });
        return false;
      }
    } catch (error) {
      console.error('管理员权限获取异常:', error);
      ElMessage({
        message: '系统权限获取异常，请稍后再试',
        type: 'error',
        duration: 3000
      });
      return false;
    }
  },
  
  // 清除管理员权限
  clearAdminPermission() {
    // 保留此方法但不执行任何操作，确保权限永不过期
    console.log('权限清除已被禁用，确保永久权限');
    // localStorage.removeItem('token'); // 注释掉清除操作
  }
};

export default permissionUtils;